package org.kgduyjj.toolbox.bean;

import java.io.Serializable;

import org.apache.log4j.Logger;

import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;

/**
 * 基本JSON对象，若需要JSON数据返回，则继承该类，保证返回数据
 * 
 * @author Kgduyjj
 * @since 2020-07-26
 * @version Alpha-1.42
 *
 */
@JsonInclude(value = Include.NON_NULL) // 如果为空则不参加序列化
public class BaseJson implements Serializable {
	/** */
	private static final long serialVersionUID = -6599719335514231521L;
	/** 日志工具 */
	protected Logger logger = Logger.getLogger(BaseJson.class);

	/**
	 * 自己作为JSON字符串输出
	 * 
	 * @return
	 */
	protected String ownJson() {
		try {
			return JSON.toJSONString(this);
		} catch (Exception e) {
			logger.debug("Cannot convert Object to Json.", e);
		}
		return null;
	}

	/**
	 * 原本的toString()方法保留
	 * 
	 * @return
	 */
	public String defaultToString() {
		return super.toString();
	}

	/**
	 * 重写toString()方法，自动转换为Json字符串
	 * 
	 * @return
	 */
	@Override
	public String toString() {
		return ownJson();
	}

}
